@@ -19,6 +19,8 @@ public class PhotoBean implements Serializable{
|
||
| 19 | 19 |
|
| 20 | 20 |
public String sessionId; |
| 21 | 21 |
|
| 22 |
+ public long sessionCreateTime; //unit :second |
|
| 23 |
+ |
|
| 22 | 24 |
public String lensmanId; |
| 23 | 25 |
|
| 24 | 26 |
public long captureTime; |
@@ -11,6 +11,7 @@ public class SessionBean implements Serializable{
|
||
| 11 | 11 |
public long sessionDate; |
| 12 | 12 |
public String lensmanId; |
| 13 | 13 |
public String sessionId; |
| 14 |
+ public long createTime; |
|
| 14 | 15 |
public ArrayList<PhotoBean> sessionPhotos; |
| 15 | 16 |
|
| 16 | 17 |
@Override |
@@ -20,6 +21,7 @@ public class SessionBean implements Serializable{
|
||
| 20 | 21 |
", sessionDate=" + sessionDate + |
| 21 | 22 |
", lensmanId='" + lensmanId + '\'' + |
| 22 | 23 |
", sessionId='" + sessionId + '\'' + |
| 24 |
+ ", createTime=" + createTime + |
|
| 23 | 25 |
'}'; |
| 24 | 26 |
} |
| 25 | 27 |
} |
@@ -7,7 +7,7 @@ import android.database.sqlite.SQLiteOpenHelper; |
||
| 7 | 7 |
public class DBHelper extends SQLiteOpenHelper{
|
| 8 | 8 |
|
| 9 | 9 |
private static final String DB_NAME = "paiai"; |
| 10 |
- private static final int DB_VERSION = 2; |
|
| 10 |
+ private static final int DB_VERSION = 3; |
|
| 11 | 11 |
private static DBHelper instance; |
| 12 | 12 |
|
| 13 | 13 |
public static final String PHOTO_INFO_TABLE = "photo_info_table"; |
@@ -24,6 +24,7 @@ public class DBHelper extends SQLiteOpenHelper{
|
||
| 24 | 24 |
String IS_RAW_PHOTO= "is_raw_photo"; |
| 25 | 25 |
String UPLOADED_STATUS = "upload_status"; |
| 26 | 26 |
String GROUP_ID = "group_id"; |
| 27 |
+ String SESSION_CREATE_TIME = "session_create_time"; |
|
| 27 | 28 |
|
| 28 | 29 |
} |
| 29 | 30 |
|
@@ -48,6 +49,8 @@ public class DBHelper extends SQLiteOpenHelper{
|
||
| 48 | 49 |
switch (oldVersion){
|
| 49 | 50 |
case 1: |
| 50 | 51 |
upgradeToVersion2(db); |
| 52 |
+ case 2: |
|
| 53 |
+ upgradeToVersion3(db); |
|
| 51 | 54 |
break; |
| 52 | 55 |
default: |
| 53 | 56 |
dropAndRecreateTables(db); |
@@ -59,6 +62,10 @@ public class DBHelper extends SQLiteOpenHelper{
|
||
| 59 | 62 |
db.execSQL("Alter table "+ PHOTO_INFO_TABLE+" add column "+PHOTO_INFO_COLUMNS.GROUP_ID +" VARCHAR");
|
| 60 | 63 |
} |
| 61 | 64 |
|
| 65 |
+ private void upgradeToVersion3(SQLiteDatabase db){
|
|
| 66 |
+ db.execSQL("Alter table "+ PHOTO_INFO_TABLE+" add column "+PHOTO_INFO_COLUMNS.SESSION_CREATE_TIME +" LONG");
|
|
| 67 |
+ } |
|
| 68 |
+ |
|
| 62 | 69 |
private void dropAndRecreateTables(SQLiteDatabase db){
|
| 63 | 70 |
db.execSQL("DROP TABLE IF EXISTS " + PHOTO_INFO_TABLE);
|
| 64 | 71 |
createTables(db); |
@@ -81,6 +88,7 @@ public class DBHelper extends SQLiteOpenHelper{
|
||
| 81 | 88 |
sql.append(PHOTO_INFO_COLUMNS.IS_RAW_PHOTO).append(" INTEGER, ");
|
| 82 | 89 |
sql.append(PHOTO_INFO_COLUMNS.SESSION_SEQ).append(" INTEGER, ");
|
| 83 | 90 |
sql.append(PHOTO_INFO_COLUMNS.SESSION_DATE).append(" LONG, ");
|
| 91 |
+ sql.append(PHOTO_INFO_COLUMNS.SESSION_CREATE_TIME).append(" LONG, ");
|
|
| 84 | 92 |
sql.append(PHOTO_INFO_COLUMNS.UPLOADED_STATUS).append(" INTEGER, ");
|
| 85 | 93 |
sql.append(PHOTO_INFO_COLUMNS.CAPTURE_TIME).append(" LONG ");
|
| 86 | 94 |
sql.append(")");
|
@@ -79,6 +79,7 @@ public class DBService {
|
||
| 79 | 79 |
item.photoPath = c.getString(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.PHOTO_PATH)); |
| 80 | 80 |
item.sessionDate = c.getLong(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.SESSION_DATE)); |
| 81 | 81 |
item.sessionSeq = c.getInt(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.SESSION_SEQ)); |
| 82 |
+ item.sessionCreateTime = c.getLong(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.SESSION_CREATE_TIME)); |
|
| 82 | 83 |
return item; |
| 83 | 84 |
} |
| 84 | 85 |
|
@@ -95,6 +96,7 @@ public class DBService {
|
||
| 95 | 96 |
cv.put(DBHelper.PHOTO_INFO_COLUMNS.UPLOADED_STATUS,item.uploadStatus); |
| 96 | 97 |
cv.put(DBHelper.PHOTO_INFO_COLUMNS.SESSION_DATE,item.sessionDate); |
| 97 | 98 |
cv.put(DBHelper.PHOTO_INFO_COLUMNS.SESSION_SEQ,item.sessionSeq); |
| 99 |
+ cv.put(DBHelper.PHOTO_INFO_COLUMNS.SESSION_CREATE_TIME,item.sessionCreateTime); |
|
| 98 | 100 |
return cv; |
| 99 | 101 |
} |
| 100 | 102 |
|
@@ -168,6 +170,7 @@ public class DBService {
|
||
| 168 | 170 |
sessionBean.sessionSeq = photoBean.sessionSeq; |
| 169 | 171 |
sessionBean.sessionId = photoBean.sessionId; |
| 170 | 172 |
sessionBean.lensmanId = photoBean.lensmanId; |
| 173 |
+ sessionBean.createTime = photoBean.sessionCreateTime; |
|
| 171 | 174 |
ArrayList<PhotoBean> photoList = new ArrayList<>(); |
| 172 | 175 |
sessionBean.sessionPhotos = photoList; |
| 173 | 176 |
sessionBeanArrayList.add(sessionBean); |
@@ -143,7 +143,8 @@ class MainPresenter implements MainContract.Presenter,SyncTimeInteractor.SyncTim |
||
| 143 | 143 |
sessionBean.lensmanId = lensmanId; |
| 144 | 144 |
sessionBean.sessionDate=getSessionDateInLongFormat(); |
| 145 | 145 |
sessionBean.sessionSeq = sessionSeq+1; |
| 146 |
- sessionBean.sessionId = lensmanId+ new Md5FileNameGenerator().generate(String.valueOf(System.currentTimeMillis())); |
|
| 146 |
+ sessionBean.createTime = System.currentTimeMillis()/1000; |
|
| 147 |
+ sessionBean.sessionId = lensmanId+ "_"+new Md5FileNameGenerator().generate(String.valueOf(sessionBean.createTime)); |
|
| 147 | 148 |
LogHelper.d("czy","createNewSession = "+sessionBean.sessionId);
|
| 148 | 149 |
sessionList.add(sessionBean); |
| 149 | 150 |
return sessionBean; |
@@ -72,7 +72,7 @@ public class SessionInteractor {
|
||
| 72 | 72 |
} |
| 73 | 73 |
HashMap<String,String> params = new HashMap<>(); |
| 74 | 74 |
params.put("lensman",sessionBean.lensmanId);
|
| 75 |
- randomSessionId = sessionBean.sessionId+"_"+(new Random().nextInt(9999)+10000); |
|
| 75 |
+ randomSessionId = sessionBean.lensmanId+"_"+sessionBean.createTime+"_"+(new Random().nextInt(9999)+10000); |
|
| 76 | 76 |
params.put("session",randomSessionId);
|
| 77 | 77 |
sessionStartTask = new HttpPostTask(params){
|
| 78 | 78 |
@Override |
@@ -95,6 +95,10 @@ public class SessionInteractor {
|
||
| 95 | 95 |
LogHelper.d(TAG,"sessionStartTask onPostFail sessionId = "+randomSessionId); |
| 96 | 96 |
super.onPostFail(); |
| 97 | 97 |
listener.onSessionStartError(sessionBean.sessionId); |
| 98 |
+ //即使session创建不成功,也继续工作,照片存lost目录 |
|
| 99 |
+ isWorking = true; |
|
| 100 |
+ LogHelper.d(TAG,"即使session创建不成功,也继续工作,照片存lost目录 sessionStartTask onPostSuccess sessionId = "+randomSessionId + "and startCapture"); |
|
| 101 |
+ startCapture(); |
|
| 98 | 102 |
} |
| 99 | 103 |
|
| 100 | 104 |
@Override |
@@ -155,6 +159,7 @@ public class SessionInteractor {
|
||
| 155 | 159 |
bean.lensmanId = sessionBean.lensmanId; |
| 156 | 160 |
bean.sessionSeq = sessionBean.sessionSeq; |
| 157 | 161 |
bean.sessionDate = sessionBean.sessionDate; |
| 162 |
+ bean.sessionCreateTime = sessionBean.createTime; |
|
| 158 | 163 |
new SavePhotoTask(bean).executeOnExecutor(ThreadExecutor.getInstance().getExecutor(),bean); |
| 159 | 164 |
return; |
| 160 | 165 |
} |
@@ -187,6 +192,7 @@ public class SessionInteractor {
|
||
| 187 | 192 |
bean.lensmanId = sessionBean.lensmanId; |
| 188 | 193 |
bean.sessionSeq = sessionBean.sessionSeq; |
| 189 | 194 |
bean.sessionDate = sessionBean.sessionDate; |
| 195 |
+ bean.sessionCreateTime = sessionBean.createTime; |
|
| 190 | 196 |
if(bean.photoId>maxId){
|
| 191 | 197 |
maxId = bean.photoId; |
| 192 | 198 |
} |